package com.kehong.demo.code;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

/**
 * @author zhang peng yang ming
 * @CopyRight (C) http://www.csdn.com
 * @brief 柱头管道
 * @email 122162005@qq.com
 * @date 2018-07-06
 */
public class Column {
    // 管道（柱头的）背景贴图
    private BufferedImage image;
    private int x;
    private int y;
    // 管道贴图的宽度
    private int width;
    // 管道贴图的高度
    private int height;
    // 管道的缺口的高度
    private int gap = 110;

    public int getGap() {
        return gap;
    }

    public Column(int x) throws IOException {
        // 初始化 x 坐标
        this.x = x;
        // 随机生成 y 坐标
        y = (int) (Math.random() * 140) + 140;
        image = ImageIO.read(getClass().getResource("../resources/column.png"));
        width = image.getWidth();
        height = image.getHeight();
    }

    /**
     * 绘制管道
     * 绘制的时候，以管道中心作为坐标原点来处理
     */
    public void paint(Graphics g) {
        g.drawImage(image, x - (width / 2), y - (height / 2), null);
    }

    /**
     * 管道移动
     */
    public void step() {
        x--;
        if (x < -width) {
            // 当管道溢出屏幕，又回到右边的初始化位置附近  (x)
            x = 320 + 10;
            // 当管道溢出屏幕，又回到右边的初始化位置时，需要重新生成 y
            y = (int) (Math.random() * 140) + 140;
        }
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public int getWidth() {
        return width;
    }

    public int getHeight() {
        return height;
    }
}
